/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.university.entity;

import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;

import com.thinkgem.jeesite.common.config.Global;
import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 专业Entity
 * @author 朱俊吉
 * @version 2017-12-10
 */
public class Major extends DataEntity<Major> {
	
	private static final long serialVersionUID = 1L;
	private XueLiLevel xueLiLevel;		// 学历层次
	private DisciplineFields disciplineFields;		// 学科门类
	private MajorCategory majorCategory;		// 专业类别
	private Integer sequence;		// 序号
	private String name;		// 专业
	private String year;		// 修学年限
	private String degree;		// 授予学位
	private String target;		// 专业培养目标
	private String curriculum;		// 主要课程
	private String knowledge;		// 毕业生应具备以下的知识和能力
	private String prospects;		// 就业前景和方向
	private Integer ranking;		// 专业排名
	private String adHoc;			//特设
	
	public Major() {
		super();
		this.adHoc = Global.NO;
	}

	public Major(String id){
		super(id);
	}
	
	@NotNull(message="学历层次不能为空")
	public XueLiLevel getXueLiLevel() {
		return xueLiLevel;
	}

	public void setXueLiLevel(XueLiLevel xueLiLevel) {
		this.xueLiLevel = xueLiLevel;
	}

	@NotNull(message="学科门类不能为空")
	public DisciplineFields getDisciplineFields() {
		return disciplineFields;
	}

	public void setDisciplineFields(DisciplineFields disciplineFields) {
		this.disciplineFields = disciplineFields;
	}
	
	@NotNull(message="专业类别不能为空")
	public MajorCategory getMajorCategory() {
		return majorCategory;
	}

	public void setMajorCategory(MajorCategory majorCategory) {
		this.majorCategory = majorCategory;
	}
	
	@NotNull(message="序号不能为空")
	public Integer getSequence() {
		return sequence;
	}

	public void setSequence(Integer sequence) {
		this.sequence = sequence;
	}
	
	@Length(min=1, max=255, message="专业长度必须介于 1 和 255 之间")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=1, max=20, message="修学年限长度必须介于 1 和 20 之间")
	public String getYear() {
		return year;
	}

	public void setYear(String year) {
		this.year = year;
	}
	
	@Length(min=1, max=50, message="授予学位长度必须介于 1 和 50 之间")
	public String getDegree() {
		return degree;
	}

	public void setDegree(String degree) {
		this.degree = degree;
	}
	
	@Length(min=1, max=1000, message="专业培养目标长度必须介于 1 和 1000 之间")
	public String getTarget() {
		return target;
	}

	public void setTarget(String target) {
		this.target = target;
	}
	
	@Length(min=1, max=1000, message="主要课程长度必须介于 1 和 1000 之间")
	public String getCurriculum() {
		return curriculum;
	}

	public void setCurriculum(String curriculum) {
		this.curriculum = curriculum;
	}
	
	public String getKnowledge() {
		return knowledge;
	}

	public void setKnowledge(String knowledge) {
		this.knowledge = knowledge;
	}
	
	@Length(min=1, max=1000, message="就业前景和方向长度必须介于 1 和 1000 之间")
	public String getProspects() {
		return prospects;
	}

	public void setProspects(String prospects) {
		this.prospects = prospects;
	}
	
	public Integer getRanking() {
		return ranking;
	}

	public void setRanking(Integer ranking) {
		this.ranking = ranking;
	}

	public String getAdHoc() {
		return adHoc;
	}

	public void setAdHoc(String adHoc) {
		this.adHoc = adHoc;
	}

}